package person.learn.controller;

import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import person.learn.util.ApplicationContextUtil;

/**
 * Created by barton on 16-1-25.
 * 1.用来测试applicationContextUtil.getBean() 方法
 * 在spring-boot项目中此方法可能并没有什么卵用。因为spring-boot都是以注入的方式获得的。
 * 但是在Listener或者Event或者Filter中可能会用的到
 * 2.使用@RestController注解，请尽量遵循RESTFUL 接口设计规范
 */
@RestController
@RequestMapping("/context")
public class ApplicationContextController {

    @Autowired
    private ApplicationContextUtil applicationContextUtil;

    @RequestMapping(method = RequestMethod.GET)
    public ResponseEntity<JSONObject> test() {
        // 获取容器中的testController实例
        ExampleController exampleController = applicationContextUtil.getBean("exampleController",
                ExampleController.class);

        // 执行testController.test()方法
        System.out.println(exampleController.test());

        return exampleController.test();
    }
}
